package com.common.httputils;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil;

import java.util.Map;

/**
 * @author ZhangHaiWen
 * @title: HttpUtil
 * @projectName minipasscheck
 * @description: http请求工具类
 * @date 2020/12/1711:38
 */
public class HttpUtils {

    /**
 　　* @description:
 　　* @param [url 请求地址]
 　　* @return {@link Object}
 　　* @throws
 　　* @author ZhangHaiWen
 　　* @version 2.0
 　　* @date 2020/12/17 13:26
 　　*/
    public static Object Get(String url){
        return Get(url,null);
    }

    /**
     　　* @description:
     　　* @param [url 请求地址 clazz 响应参数]
     　　* @return {@link Object}
     　　* @throws
     　　* @author ZhangHaiWen
     　　* @version 2.0
     　　* @date 2020/12/17 13:26
     　　*/
    public static String Get(String url,Object param){
        return Get(url,param,String.class);
    }

    /**
 　　* @description:
 　　* @param [url 请求地址 clazz 响应参数]
 　　* @return {@link Object}
 　　* @throws
 　　* @author ZhangHaiWen
 　　* @version 2.0
 　　* @date 2020/12/17 13:26
 　　*/
    public static <T> T Get(String url,Class<T> clazz){
        return Get(url,null,clazz);
    }

    /**
 　　* @description:
 　　* @param [url 请求地址 param请求参数 clazz 响应参数]
 　　* @return {@link Object}
 　　* @throws
 　　* @author ZhangHaiWen
 　　* @version 2.0
 　　* @date 2020/12/17 13:26
 　　*/
    public static <T> T Get(String url,Object param,Class<T> clazz){
        Map<String, Object> map = BeanUtil.beanToMap(param);
        return Get(url,map,clazz);
    }

    /**
 　　* @description:
 　　* @param [url 请求地址 param请求参数 clazz 响应参数]
 　　* @return {@link Object}
 　　* @throws
 　　* @author ZhangHaiWen
 　　* @version 2.0
 　　* @date 2020/12/17 13:26
 　　*/
    public static <T> T Get(String url, Map<String,Object> param, Class<T> clazz){
        String result = HttpUtil.get(url,param);
        return JSONUtil.toBean(result,clazz);
    }


}
